package models

import (
	"time"
	
	"gorm.io/gorm"
)

type Comment struct {
	ID        uint      `gorm:"primaryKey" json:"id"`
	CreatedAt time.Time `json:"created_at"`
	PostID    uint      `gorm:"not null" json:"post_id"`
	Post      Post      `gorm:"foreignKey:PostID" json:"post,omitempty"`
	UserID    *uint     `json:"user_id,omitempty"` // 指针类型，允许为空（游客评论）
	User      User      `gorm:"foreignKey:UserID" json:"user,omitempty"`
	ParentID  *uint     `json:"parent_id,omitempty"` // 父评论ID，支持嵌套评论
	Author    string    `gorm:"size:50" json:"author"` // 游客评论者名称
	Email     string    `gorm:"size:100" json:"email"` // 游客评论者邮箱
	Content   string    `gorm:"type:text;not null" json:"content"`
	Status    int       `gorm:"default:0" json:"status"` // 0: 待审核, 1: 已发布, 2: 垃圾
	Replies   []Comment `gorm:"foreignKey:ParentID" json:"replies,omitempty"`
}

// 钩子函数 - 创建前生成时间戳
func (c *Comment) BeforeCreate(tx *gorm.DB) (err error) {
	c.CreatedAt = time.Now()
	return
}